package com.kaili.finance.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.kaili.finance.pojo.entity.*;
import com.kaili.finance.pojo.dto.detailSum.FinInOutDetailDTO;
import com.kaili.finance.pojo.dto.detailSum.finInOutQueryDTO;
import com.kaili.finance.pojo.dto.transSum.FinTransSumDetailQueryDTO;
import com.kaili.finance.pojo.dto.transSum.FinTransSumQueryDTO;
import com.kaili.finance.pojo.vo.*;

import java.util.List;
import java.util.Map;

/**
 * Created by :xinglei
 * *  *  *  *  *  *  *  *  *
 *
 * @Created time :18-5-17.
 * @Company :杭州凯立通信有限公司
 * *  *  *  *  *  *  *  *  *
 * 交易汇总收入支出汇总
 */
public interface FinDetailService {

    /**
     * 查询汇总数据的收入支出
     * @param page
     * @param
     * @return
     */
    Page<FinInOutVO>  selectFinDetailPage(Page<FinInOutVO> page, finInOutQueryDTO dto);


    // 查询汇总数据的金额
    FinTransSumAmountVO  selectFinDetailSumAmount(finInOutQueryDTO dto);

    /**
     * 根据ID查询明细数据
     * @param page
     * @param
     * @return
     */
    Page<FinInOutDetailVO> selectFinDetail(Page<FinInOutDetailVO> page,  FinInOutDetailDTO dto);
    /**
     * 查询汇总数据导出
     * @param
     * @param
     * @return
     */
    List<FinDetailSumExport> selectFinDetailSumExport(Map search);
    /**
     * 查询明细数据导出
     * @param
     * @param
     * @return
     */
    List<FinDetailExport> selectFinDetailExport(Map search);

    /**
     * 交易汇总查询
     * @param page
     * @param
     * @return
     */
    Page<FinDetailDayVO>  selectFinTransSum(Page<FinDetailDayVO> page, FinTransSumQueryDTO dto);
    /**
     * 交易汇总金额查询
     * @param page
     * @param
     * @return
     */
    FinTransSumAmountVO selectFinTransSumAmount( FinTransSumQueryDTO dto);
    /**
     * 查询所有费用项目
     * @param
     * @param
     * @return
     */
    List<FinDictVO>  selectAllChargeItem();
    /**
     * 交易汇总明细
     * @param page
     * @param
     * @return
     */
    Page<FinTransSumDetailVO>  selectFinTransDeatil(Page<FinTransSumDetailVO> page, FinTransSumDetailQueryDTO dto);

    /**
     * 交易汇总导出
     * @param
     * @param
     * @return
     */
    List<TransSumExport> selectTransSumExport(Map search);
    /**
     * 交易明细导出
     * @param
     * @param
     * @return
     */
    List<TransDetailExport> selectTransDetailExport(Map search);

}
